The present invention relates to a data timing adjustment method and a data timing adjustment apparatus for adjusting data latch timing where a semiconductor device such as a memory or an LSI outputs a strobe signal and data in synchronism with the strobe signal.
Typically, timing for reading out data from a memory, an LSI, or the like (discussion hereinbelow will focus on cases where data is read out from a memory) is determined in advance when the device is designed. However, the data read timing may vary due to various factors such as the physical location of the memory, the characteristics of the memory, a voltage drop and the ambient temperature. If the readout data is latched with predetermined fixed latch timing, a data mislatch may occur. Therefore, it is necessary to adjust the timing with which readout data is latched.
With some conventional techniques, a dip switch, or the like, is provided to allow for manual adjustment of the readout data latch timing such that data output from a memory is latched properly.
This method however introduces the manual adjustment operation. In view of this, Japanese Laid-Open Patent Publication No. 2004-185608, for example, proposes a timing adjustment apparatus that automatically adjusts timing with which data read out from a memory is latched.
FIG. 13 is a block diagram showing the timing adjustment apparatus disclosed in this publication.
Referring to FIG. 13, reference numeral 1102 denotes a check data storage section for storing check data, which is used when adjusting the timing with which to latch data read out from a memory 1100.
Reference numeral 1103 denotes a write control section, which receives a mode selection signal. When the mode selection signal indicates a normal operation mode, the write control section 1103 writes input data to a predetermined address of the memory 1100. When the mode selection signal indicates a latch timing adjustment mode, the write control section 1103 writes data stored in the check data storage section 1102 to the memory 1100. Specifically, the write control section 1103 gives a timing signal s1103a, an address s1103b and data (input data or check data) s1103c to the memory 1100, thereby writing the data to a predetermined address of the memory 1100.
Reference numeral 1104 denotes a read control section, which receives the mode selection signal. Both in the normal operation mode and in the latch timing adjustment mode, the read control section 1104 gives a timing signal s1104a and an address signal s1104b to the memory 1100, thereby reading out a strobe signal DQS and data s1100 in synchronism with the signal DQS from the memory 1100. At the end of the latch timing adjustment mode, the read control section 1104 outputs a delay determination signal s1104c to a determination section 1108 and a delay control section 1109 to be described later.
Reference numeral 1105 denotes a delay selection section including a series of delay circuits 1051, 1052 to 105n and a selection section 1105a. The delay selection section 1105 delays the strobe signal DQS from the memory 1100 successively through the delay circuits 1051 to 105n to produce a plurality of delayed pulse signals with different delay amounts, and one of the outputs from the delay circuits 1051 to 105n is selected by the selection section 1105a. 
Reference numeral 1106 denotes a latch circuit for receiving the data s1100 read out from the memory 1100 and receiving a delayed pulse signal from one of the delay circuits of the delay selection section 1105 selected by the selection section 1105a to latch the data s1100 read out from the memory 1100 in synchronism with the delayed pulse signal. In the normal operation mode, the data latched by the latch circuit 1106 is output from an output terminal 1101.
Reference numeral 1107 denotes a comparison circuit for comparing the readout data latched by the latch circuit 1106 with the corresponding data stored in the check data storage section 1102 to determine if the data match with each other.
Reference numeral 1108 denotes a determination section, which receives the delay determination signal from the read control section 1104 at the end of the latch timing adjustment mode. Based on a plurality of comparison results from the comparison circuit 1107, the determination section 1108 determines one of the delay circuits 1051 to 105n with which the readout data from the memory 1100 is appropriately latched by the latch circuit 1106, i.e., the determination section 1108 determines the delayed pulse signal with the optimal delay amount.
With the technique of the above-mentioned publication, the optimal latch timing for latching readout data from the memory 1100 is determined, thus realizing an automatic timing adjustment.
A strobe signal output from a memory is typically a signal that is added only when there is data to be read out, and is not a continuous signal such as a clock signal. Therefore, in a case where data in synchronism with such a strobe signal is input to, and used in, a semiconductor integrated circuit that operates based on a system clock, the data in synchronism with the strobe signal needs to be latched with the strobe signal and eventually latched again with the system clock.
However, a strobe signal and a system clock are signals of separate origins. Although the conventional latch timing adjustment apparatus adjusts the phase of the strobe signal so that readout data can be desirably latched with the strobe signal, a mislatch may occur when data, which has been latched with the strobe signal, is latched again with the system clock if there is a displacement in the phase relationship between the strobe signal and the system clock. Thus, the conventional apparatus may fail to perform a latch timing adjustment with a high precision.